
/* 
1 页面加载的时候
  1 从缓存中获取购物车数据 渲染到页面中
    这些数据  checked=true 
2 微信支付
  1 哪些人 哪些帐号 可以实现微信支付
    1 企业帐号 
    2 企业帐号的小程序后台中 必须 给开发者 添加上白名单 
      1 一个 appid 可以同时绑定多个开发者
      2 这些开发者就可以公用这个appid 和 它的开发权限  
3 支付按钮
  1 先判断缓存中有没有token
  2 没有 跳转到授权页面 进行获取token 
  3 有token 。。。
  4 创建订单 获取订单编号
  5 已经完成了微信支付
  6 手动删除缓存中 已经被选中了的商品 
  7 删除后的购物车数据 填充回缓存
  8 再跳转页面 
 */
const DB=wx.cloud.database().collection("order")//上传数据的列表中
import { getSetting, chooseAddress, openSetting, showModal, showToast, requestPayment } from "../../utils/asyncWx.js";
import regeneratorRuntime from '../../lib/runtime/runtime';
import { request } from "../../request/request.js";
Page({
  data: {
    address:[],
    cart:[],
    totalPrice: 0,
    totalNum: 0,
    payauth:false,
    openid:""
  },
  onLoad: function (options) {
    console.log(options.openid)
    let that=this
    that.setData({
      openid:options.openid
    })
    console.log(options.cart)
    const eventChannel = this.getOpenerEventChannel()
    eventChannel.on('acceptDatafromCart', function(data) {
      console.log(data)
      that.setData({ 
        cart:data.cart
      })
    })
  },
  onShow() {
    // 1 获取数据库中的收货地址信息
   
  
    // 1 获取数据库中的购物车数据 

    wx.cloud.database().collection("cart").where({
      _openid:this.data.openid,
      checked:true
    })
    .get({
      success(res){
         console.log("请求购物车数据成功",res)
         that.setData({
           cart:res.data
         })
         let totalPrice = 0;
         let totalNum = 0;
         res.data.forEach(v => {
           totalPrice += v.goods_num * v.goods_price;
           totalNum += v.goods_num;
         })
         that.setData({
          cart:res.data,
          totalPrice, totalNum,
        });
         console.log("123",cart)
      }, 
      fail(res){
         console.log("请求购物车数据失败",res)
      }
     })
    let that=this 
    wx.cloud.database().collection("address").where({
      isselected:true,
      _openid:this.data.openid//修改过！！
    })
    .get({
      success(res){
        console.log("获取成功",res)
        that.setData({
          address:res.data
        })
       if(res.data.length==0)
       that.setData({
        ischoosed:false,
        isnotchoosed:true
      })
      else{
        that.setData({
          ischoosed:true,
          isnotchoosed:false
        })
      }
      }
    })
    // this.setData({
    //   cart,address
    // });
    // 过滤后的购物车数组
    // 1 总价格 总数量
  },

  // 点击 支付 
tiaozhuan:function(){
  if ((!this.data.payauth)) {
    wx.navigateTo({
      url: '/pages/auth/pay'
    });
    return;
  } 
},
changeinfo:function(){
  let { cart } = this.data;
  this.changeCart(cart); 
  this.changeOrder(cart);
  this.changelist(cart);
  this.addcust(cart);
},
changeCart(cart){ 
  cart.forEach(v => {
    if (v.checked) {
      wx.cloud.database().collection("cart").where({
        goods_id:v.goods_id,
        _openid:this.data.openid//修改过
              }).remove({
           success: function(res) {
             console.log(res.data)
           }
         })
    
    } 
  }) 
},

changeOrder(cart){
  cart.forEach(v => {
    if (v.checked) {
      DB.add({
        data:{
          order_name:v.goods_name,//商品名字
          order_id:v.goods_id,
          order_num:v.goods_num,//商品数量
          order_price:v.goods_price,
        },
        success(res){
          console.log("添加成功",res)
        },
        fail(res){
          console.log("添加失败",res)
        }
      })
    } 
  }) 
},  

changelist(cart){
  const _=wx.cloud.database().command
  cart.forEach(v => {
    if (v.checked) {
      wx.cloud.database().collection("list").where({
        goods_id:v.goods_id}).update({
        data: {  
          is_saled:true, 
          sale_num: _.inc(-1*v.goods_num)
        }, 
        success: function(res) {
          console.log(res.data)
        }
      })
    } 
  }) 
}, 
addcust(cart){
  cart.forEach(v => {
    if (v.checked) {
      wx.cloud.database().collection("list").where({
        goods_id:v.goods_id
      }).update({
        data:{
          cust_mes:this.data.address,//顾客信息
        },
        success(res){
          console.log("添加成功",res)
        },
        fail(res){
          console.log("添加失败",res)
        }
      })
    } 
  }) 
},  
async handleOrderPay() {
  
      // 1 判断云数据库中权限是否为true
      //获取云数据库数据
      let that=this
      wx.cloud.database().collection("userinfo").get({
        success(res){
          console.log("请求成功",res)
          that.setData({
            payauth:res.data[0].payauth,
          })
          },
         fail(res){
          console.log("请求失败",res)
         }})

      // 3 创建订单
      // 3.1 准备 请求头参数
      // const header = { Authorization: token };
      // 3.2 准备 请求体参数
      const order_price = this.data.totalPrice;
      const consignee_addr = this.data.address.all;
      const cart = this.data.cart;
      let goods = []; 
      cart.forEach(v => goods.push({
        goods_id: v.goods_id,
        goods_number: v.num,
        goods_price: v.goods_price
      }))



      //4 支付成功了 跳转到订单页面

      wx.navigateTo({
        url: '/pages/order/order?openid='+this.data.openid
      });
        
    } 

  })


























  
